Type Refinements

نویسندگان

  • Robert Harper
  • Frank Pfenning
چکیده

Despite many concentrated research efforts in various areas such as software engineering, programming languages, and logic, software today is not fundamentally more reliable than it was a decade ago. Software is becoming increasingly complex and inter-reliant and the techniques and tools provided by the academic community are used only sparsely. In part, this can be attributed to the many barriers to technology transfer. However, one can also recognize that in a number of ways the methods provided by the research community fail to be applicable to the problems faced by developers or maintainers of large-scale, long-lived systems. One important aspect of software development and maintenance is to understand properties of a complete system, its individual components, and how they interact. There is a wide range of properties of interest, some concerned only with the input/output behavior of functions, others concerned with concurrency or real-time requirements of processes. Upon examining the techniques for formally specifying, understanding, and verifying program behavior available today, one notices that they are almost bi-polar. On the one extreme we find work on proving the correctness of programs, on the other we find type systems for programming languages. Both of these have clear shortcomings: program proving is very expensive, time-consuming, and often infeasible, while present type systems support only minimal consistency properties of programs. The proposed research is intended to help bridge this gap by designing and implementing more refined type systems that allow rich classes of program properties to be expressed, yet still be automatically verified. Through careful, logically motivated design we hope to combine the best ideas from abstract interpretation, automated program analysis, type theory, and verification. In the remainder of this section we explain and justify our approach in somewhat more detail, before giving a research plan in the next section.

برای دانلود رایگان متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

A note on the Young type inequalities

In this   paper,  we   present  some  refinements  of the   famous Young  type  inequality.   As  application  of   our   result, we  obtain  some  matrix inequalities   for   the  Hilbert-Schmidt norm  and   the  trace   norm. The results    obtained   in  this  paper  can  be   viewed   as  refinement  of  the   derived  results   by  H.  Kai  [Young  type  inequalities  for matrices,  J.  Ea...

متن کامل

On Bernstein Type Inequalities for Complex Polynomial

In this paper, we establish some Bernstein type inequalities for the complex polynomial. Our results constitute generalizations and refinements of some well-known polynomial inequalities.

متن کامل

When Is a Type Refinement an Inductive Type?

Dependently typed programming languages allow sophisticated properties of data to be expressed within the type system. Of par-ticular use in dependently typed programming are indexed types that refine data by computationally useful information. For example, the Nindexed type of vectors refines lists by their lengths. Other data types may be refined in similar ways, but programmers must produce ...

متن کامل

Refining Inductive Types

Dependently typed programming languages allow sophisticated properties of data to be expressed within the type system. Of particular use in dependently typed programming are indexed types that refine data by computationally useful information. For example, the N-indexed type of vectors refines lists by their lengths. Other data types may be refined in similar ways, but programmers must produce ...

متن کامل

Type Refinements for Compiler Correctness

Type refinements, introduced by Freeman and Pfenning and explored by Davies and Dunfield, unify the ontological and epistemic views of typing. Types tell us what programming language constructs exist, whereas refinements express properties of the values of a type. Here we show that refinements are very useful in compiler correctness proofs, wherein it often arises that two expressions that are ...

متن کامل

Combining Two Forms of Type Refinements

Type refinements allow invariants about algebraic datatypes to be expressed through the type system. We present a small functional language and type system that elegantly combines datasort refinements (commonly called refinement types) and dependent index refinements, so that one can specify invariants using whatever refinement is most suitable. Our type system has intersections (novel in the p...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2001